package com.lht.arithmetic.sort;

/**
 * @author Eric
 * @version 1.0
 * @date 2019-11-22
 */
public class SelectionSort implements Sort {

    /**
     * 感觉有点像 优化 冒泡 记录住 最小值，和下标，然后确实最小，然后交换
     *
     * @param arr
     * @param start
     * @param end
     * @return
     */
    @Override
    public void sort(int[] arr, int start, int end) {
        for (int i = start; i < end; i++) {
            int min = arr[i];
            int minIndex = i;
            for (int j = start + 1; j < end; j++) {
                if (arr[j] < min) {
                    min = arr[j];
                    minIndex = j;
                }
            }
            if (minIndex > i) {
                int tmp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = arr[i];
            }
        }
    }

}
